/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package woowcrawler;

import java.util.ArrayList;

/**
 *
 * @author Deise
 */
public class Similaridade {

    public static double SimilaridadeCosseno(ArrayList<Palavra> perfil,ArrayList<Palavra> documentoOrdenado)
    {
        double numerador = 0;
        double denominadorPerfil=0;
        double denominadorDocumento=0;
        double similaridade=0;
        for(int i=0;i<perfil.size();i++)
        {
            numerador+=perfil.get(i).getQuantidade()*documentoOrdenado.get(i).getQuantidade();
            denominadorPerfil+=Math.pow(perfil.get(i).getQuantidade(), 2);
            denominadorDocumento+=Math.pow(documentoOrdenado.get(i).getQuantidade(),2);
        }
        denominadorPerfil=Math.sqrt(denominadorPerfil);
        denominadorDocumento=Math.sqrt(denominadorDocumento);
        similaridade=numerador/(denominadorPerfil*denominadorDocumento);
        return similaridade;
    }
    public static ArrayList<Palavra> OrdenarArrayDocumento(ArrayList<Palavra> perfil,ArrayList<Palavra> documento)
    {
        ArrayList<Palavra> documentoOrdenado = Util.IniciarArray(perfil.size());
        boolean adicionou=false;
        for(int i=0;i<perfil.size();i++)
        {
            for(int j=0;j<documento.size();j++)
            {
                if(documento.get(j).getConteudo().equals(perfil.get(i).getConteudo()))
                {
                    documentoOrdenado.set(i,documento.get(j));
                    adicionou=true;
                }

            }
            if(documentoOrdenado.size()>0 && !adicionou)
            {
                Palavra termo = new Palavra(perfil.get(i).getConteudo(),0);
                documentoOrdenado.set(i,termo);

            }
            adicionou=false;
        }
        return documentoOrdenado;
    }

    

}
